Datatypes in C#
May 21, 2021 (05:08:44 PM)
Value Types
Numeric
Signed Integer
| Type | Range | Size |
|---|---|---|
sbyte |
-128 to 127 | Signed 8-bit integer |
short |
-32,768 to 32,767 | Signed 16-bit integer |
int |
-2,147,483,648 to 2,147,483,647 | Signed 32-bit integer |
long |
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | Signed 64-bit integer |
Unsigned Integer
| Type | Range | Size |
|---|---|---|
byte |
0 to 255 | Unsigned 8-bit integer |
ushort |
0 to 65,535 | Unsigned 16-bit integer |
uint |
0 to 4,294,967,295 | Unsigned 32-bit integer |
ulong |
0 to 18,446,744,073,709,551,615 | Unsigned 64-bit integer |
Floating-point Numbers
| Type | Approximate Range | Precision |
|---|---|---|
float |
±1.5e−45 to ±3.4e38 | 7 digits |
double |
±5.0e−324 to ±1.7e308 | 15–16 digits |
decimal |
(-7.9 x 1028 to 7.9 x 1028)/(100 to 1028) | 28–29 significant digits |
Logical
| Type | Possible Values | Size |
|---|---|---|
bool |
true, false |
8-bit |
Character
| Type | Range | Size |
|---|---|---|
char |
U+0000 to U+ffff | Unicode 16-bit character |
Literals
| Name | Corresponding datatype | Examples |
|---|---|---|
| Integer Literal | int |
40, -39, 291838, 0, … |
| Float Litteral | float |
3.5F, -43.5f, 309430.70006F, … |
| Double Literal | double |
28.98, 239.0, -391.089, 0.0, … |
| Decimal Literal | decimal |
8.95m, 3283.9M, -30m, … |
| Boolean Literal | bool |
true, false |
| Character Literal | char |
'Y', 'a', '0', '\n', '\x0058', '\u0058', … |
Compatibility
| Integer Litteral | Float Litteral | Double Litteral | Decimal Litteral | |
|---|---|---|---|---|
int |
✓ | ✘ | ✘ | ✘ |
float |
✓ | ✓ | ✘ | ✘ |
double |
✓ | ✓ | ✓ | ✘ |
decimal |
✓ | ✘ | ✘ | ✓ |
Result Type of Operations
int |
float |
double |
decimal |
|
|---|---|---|---|---|
int |
int |
float |
double |
decimal |
float |
float |
float |
double |
illegal |
double |
double |
double |
double |
illegal |
decimal |
decimal |
illegal | illegal | decimal |
References
- https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/types-and-variables
- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/integral-types-table
- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/floating-point-types-table
- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/value-types-table
- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/implicit-numeric-conversions-table
- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/explicit-numeric-conversions-table